In computing an optimizing compiler is a compiler that tries to minimize or maximize some attributes of an executable computer program, such as by increasing run-time performance, decreasing the amount of memory utilized by the program, and so forth. Compiler optimization is often implemented using a sequence of optimizing transformations, algorithms that take a program and transform it to produce a semantically equivalent output program that uses fewer resources or executes more quickly. Compiler optimizations can be divided into multiple categories, such as loop optimizations, data-flow optimizations, SSA-based optimizations, code generator optimizations, bounds-checking eliminations, dead code limitations, and so forth. However, by some considered the most important form of optimization, is inlining. Inlining is performed by replacing method invocations with the substance of the called method. As a result, the transformed code requires less overhead, such as including fewer jump instructions. Furthermore, inlining can help fuel other optimizations by providing the compiler with larger chunks of code to analyze. However, for method calls which are potentially polymorphic, it can be difficult for the compiler to determine which implementation of an overridden method to inline.